﻿<?xml version="1.0" encoding="UTF-8"?>
<!--RSS generated by Windows SharePoint Services V3 RSS Generator on 9/7/2010 9:11:50 PM-->
<?xml-stylesheet type="text/xsl" href="/BlogPoint/_layouts/RssXslt.aspx?List=96f31f8e-ca05-4cbe-9ad7-628b4cad2a36" version="1.0"?>
<rss version="2.0">
  <channel>
    <title>BlogPoint: Posts</title>
    <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/AllPosts.aspx</link>
    <description>RSS feed for the Posts list.</description>
    <lastBuildDate>Wed, 08 Sep 2010 01:11:50 GMT</lastBuildDate>
    <generator>Windows SharePoint Services V3 RSS Generator</generator>
    <ttl>60</ttl>
    <image>
      <title>B l o g P o i n t: Posts</title>
      <url>/BlogPoint/_layouts/images/homepage.gif</url>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/AllPosts.aspx</link>
    </image>
    <item>
      <title>SharePoint – A Global Navigation Solution Across Site Collections – Permissions</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=64</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClassD07B1451D4E243778C8AFAFA925BD2BC>
<p>I have deployed this solution with several clients and in doing so I have added some functionality.  One of those areas is Permissions.  If you have not read my previous posts on this topic please check them out:</p>
<ul>
<li>Article I - <a href="/BlogPoint/Lists/Posts/Post.aspx?ID=60">SharePoint - A Global Navigation Solution across Site Collections</a> 
<li>Article II - <a href="/BlogPoint/Lists/Posts/Post.aspx?ID=62">SharePoint – A Global Navigation Solution Across Site Collections – Version 2.0 Primer and Deployment</a> 
<li>Articles III - <a href="/BlogPoint/Lists/Posts/Post.aspx?ID=63" target="_blank">SharePoint - A Global Navigation Solution across Site Collections – Version 2.0 Solution</a></li></ul>
<p>Permission can be added to version 1.0 or 2.0 and there is no different in how it is implemented.  Actually it is very simple since we will use out of the box features to accomplish this.  We will have the ability to apply permissions to a Tab and/or to a pull down item.</p>
<p>To apply permissions so that a tab or pull down item is only viewable to a specific audience we will use SharePoint’s feature of specify permissions at the item level.  Now this is know in the SharePoint community as not a best practice, but I believe in this case it an exception to the rule that works well for its purpose.  I preach to my clients not break permissions and not to break them at the item level, so when I tell them that we have to do this for this solution they say to me, but you told us not to do that.  There are exceptions to every rule and here is one.</p>
<p>Implementing this solution is simple.  For each tab or pull down item you will change the Manage Permissions settings to Edit Permission.  At this point you can now add and delete groups that should have access to this item.  (Caution:  Do not delete the group that gives you permission to edit the item.  If you do then you will have to ask the Admin to add you back to edit the item.  I know form experience.)</p>
<p>Here is a step by on how to do this.</p>
<h4>Step 1</h4>
<p>Select the item to apply permissions to and select Manage Permissions.</p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/64/image_2_57D421D6.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/64/image_thumb_57D421D6.png" width=612 height=303></a> </p>
<h4>Step 2</h4>
<p>Next you will then break the inheritance of permissions by selecting Actions and then Edit Permissions.</p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/64/image_4_57D421D6.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/64/image_thumb_1_57D421D6.png" width=618 height=160></a> </p>
<h4>Step 3</h4>
<p>You will get a warning that you are breaking permissions.  You will select Yes to this warning.</p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/64/image_6_57D421D6.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/64/image_thumb_2_57D421D6.png" width=439 height=176></a> </p>
<h4>Step 4</h4>
<p>Next you will select New so that you can add the groups or people that need to have access.</p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/64/image_12_57D421D6.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/64/image_thumb_5_57D421D6.png" width=415 height=239></a> </p>
<h4>Step 5</h4>
<p>Add the groups or people that should have access and set the user permission to read only.  Next </p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/64/image_10_57D421D6.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/64/image_thumb_4_05C1748F.png" width=537 height=390></a> </p>
<p>That is it and now the tab or pull down will only show up if the person has permissions to view it.</p>
<p>Depending on how SharePoint permissions are setup in your environment this this can be easy or be complicated.  What do I mean by this?  Well an environment that uses Active Directory groups will have a much easier time with this then an environment that directly adds users to the three standard permissions groups for a site.  Since this solution does not pull permissions based on the location of the link in the pull down, you have to maintain permissions on your site as well as here.  IF you do this through AD groups then it is much easier as you add the same AD groups to the item and you will only need to update the AD group to change who can see the item.</p>
<p>Hope this helps.</p></div></div>
<div><b>Category:</b> SharePoint;SP-Javascript/JQuery;SP-Lists;SP-Navigation</div>
<div><b>Published:</b> 7/1/2010 2:09 PM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_10_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_10_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_12_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_12_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_2_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_2_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_4_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_4_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_6_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_6_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_1_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_1_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_2_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_2_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_4_05C1748F.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_4_05C1748F.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_5_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_5_57D421D6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_57D421D6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/64/image_thumb_57D421D6.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-Javascript/JQuery;SP-Lists;SP-Navigation</category>
      <pubDate>Thu, 01 Jul 2010 14:54:58 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=64</guid>
    </item>
    <item>
      <title>SharePoint - A Global Navigation Solution across Site Collections – Version 2.0 Solution</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=63</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClassC600DF00993A459FAEB440174397FACB><div class=ExternalClassBB8AFD53B0834142A69B12660CEACC26> <p>My solution for A Global Navigation Solution across Site Collections has been upgraded to version 2.0.  If you have not read my previous posts on this topic please check them out:</p> <ul> <li>Article I - <a title="SharePoint - A Global Navigation Solution across Site Collections" href="/BlogPoint/Lists/Posts/Post.aspx?ID=60">SharePoint - A Global Navigation Solution across Site Collections</a>  <li>Article II - <a title="SharePoint – A Global Navigation Solution Across Site Collections – Version 2.0 Primer and Deplo" href="/BlogPoint/Lists/Posts/Post.aspx?ID=62">SharePoint – A Global Navigation Solution Across Site Collections – Version 2.0 Primer and Deployment</a></li></ul> <p>In version 2.0 I have streamlined the code and reduced the number of lists needed to create the pull downs and now use a list for creating the tabs.  So once you set it up you can easily add tabs and pull downs to a tab, by simply updating the tabs list or the pull down list and all site with this solution will see the changes. </p> <p>I have also refined the tabs to show the <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a> when there is a pull down.  Also, pull downs now can have popup descriptions for each listed item, if you like.  All you need to do is populate the Notes field in your pull down list, unpopulated notes will show nothing.</p> <p>If you have not implemented this solution yet then follow all the steps listed below.  If you have implement my version 1.0, the changes you will need to make are updating the code in the topnavigation.js file and create two new lists for your tab and pull down.  Your infrastructure, code you added to your masters pages, you created does not need be changed at all.</p> <p>Let take a look at version 2.0 changes.  Below is an image of how the pull downs can look showing all the features. </p> <p><a href="/BlogPoint/Lists/Posts/Attachments/63/image_4_196FB2EE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/63/image_thumb_1_196FB2EE.png" width=559 height=499></a> </p> <p> </p> <p><strong>Version 2.0 Global Navigation Features</strong></p> <p>In version 2.0 I have added MOSS features and as a result the following features were added:</p> <ul> <li>Pull Down icon <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a> will only appear on those that you indicate have a pull down.  So now you can have a standard tab or a tab with a pull down where the <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a> will show indicating there is more to view.  <ul> <li><a href="/BlogPoint/Lists/Posts/Attachments/62/image_23_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_10_7EC200CF.png" width=206 height=31></a> </li></ul> <li>By adding comments in the notes section of the links, they will then become pop-ups when you hover over a link.  <ul> <li><a href="/BlogPoint/Lists/Posts/Attachments/62/image_17_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_7_7EC200CF.png" width=244 height=74></a></li></ul> <li>New version only requires one list for the tabs and one list for all the pull downs. </li></ul> <p>When I implemented this on my site <a href="/">www.bitsofsharepoint.com</a> I created a site where I housed all of the lists and libraries.  Below is an image of the what a proper implementation would look like.  You will notice we have the two lists for tabs and pull downs, and we have the Scripts library where our three scripts are housed.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/62/_attach/image_4_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_1_7EC200CF.png" width=609 height=415></a></p> <p> View example here: <a title="http://www.bitsofsharepoint.com/ExamplePoint/navigation2/default.aspx" href="/ExamplePoint/navigation2/default.aspx">http://www.bitsofsharepoint.com/ExamplePoint/navigation2/default.aspx</a></p> <p>Now lets create and implement the solution.  Below are the components that you will need.  Though this may look like a lot, it is very simple.  Add three lists and libraries, add code to your master page, change code in a script file, and add your tabs and pull downs to the lists and that is it. </p> <p><strong>Components needed:</strong></p> <ol> <li>SharePoint Resource Site  <li>SPServices by Marc Anderson  <li>jQuery  <li>SharePoint Designer to edit Master Pages  <li>SharePoint Links List for Tabs and Pull Downs  <li>Solution Code</li></ol> <p><strong>1) SharePoint Resource Site</strong></p> <p>I recommend that if you do not already have a site collection devoted to scripts and lists that will be accessible by all, that you create one.  This site collection will allow you to have document library where you can house your scripts like jQuery and SPServices.  It will also allow you to create lists as needed for example the one we will create to manage the pull down items in our tab.</p> <p>So there should be a site collection where we house the below files and list and that has permissions set to all authenticated members as read only. For purposes of this article I will call this site collection Resources. I wrote an article along these lines and here it is: <a title="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Post.aspx?ID=29" href="/BlogPoint/Lists/Posts/Post.aspx?ID=29">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Post.aspx?ID=29</a></p> <p><strong>2) SPServices by Marc Anderson</strong></p> <p>We need to download the SPServices file that Marc Anderson has put together.  You can find it here: <a href="http://spservices.codeplex.com/">http://spservices.codeplex.com/</a> This file will be used by the script for this solution, so this will need to be added to the document library where you keep scripts.  In my case it would go into the document library in my Resources site collection.</p> <p>Recommendation is to change the name of the file name so that it does not have a version number and should look like this, “jquery.SPServices-latest.min.js”.  This will allow you to update in the future to Marc’s latest version without having to go back to each master page and change to the new version name.</p> <p><strong>3) jQuery</strong></p> <p>There are two ways to work with a jQuery file.  You have a choice of downloading the latest version and putting it in scripts document library or you can point to Google's version which will always be the latest version.  This is a choice that you will make.   You can download jQuery from here: <a href="http://jquery.com/">http://jquery.com/</a></p> <p>I would then add this script to me document library in my Resources site collection.</p> <p><strong>4) SharePoint Designer to edit Master Pages</strong></p> <p>You will need to have access to SharePoint Designer and be able to edit the Master Pages on the sites you want the global navigation tab to show up on.  When you edit a master page you will want to add the following code between the &lt;header&gt;&lt;/header&gt; tags as diagramed below.  <p><a href="/BlogPoint/Lists/Posts/Attachments/63/image_2_475D05A6.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/63/image_thumb_475D05A6.png" width=613 height=222></a>  <p>Here is the code you will need to add to each master page.  Make sure that the URL’s point to where you have the files housed.  They do need to be absolute URL’s, as you will be adding this code across site collections, web apps and even servers.  <blockquote> <p>&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://yoursite/SiteCollection/LibraryName/jquery.SPServices-latest.min.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://yoursite/SiteCollection/LibraryName/topnavigation.js&quot;&gt;&lt;/script&gt; </p></blockquote> <p>For example if I put “jquery-latest.js”, “jquery.SPServices-latest.min.js”, and “topnavigation.js” in my Resoures site collection in the document library called ScriptsLibrary, then it would look like this:</p> <blockquote> <p>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bitsofsharepoint.com/Resources/ScriptsLibrary/jquery-latest.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bitsofsharepoint.com/Resources/ScriptsLibrary/jquery.SPServices-latest.min.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bitsofsharepoint.com/Resources/ScriptsLibrary/topnavigation.js&quot;&gt;&lt;/script&gt; </p></blockquote> <p><strong>5) SharePoint Links List for Tabs and Pull Downs</strong></p> <p>In version 2.0 we now can pull the tabs and pull downs from just two lists.  This makes it much easier to maintain and deploy.  Now we only need to go to the Tabs list to add another tab.  In the Tab Pull Down list we can associate a pull down to any of the tabs.  This will make it very easy to switch a pull down from one tab to another if needed.  </p> <p><strong>Tabs List</strong></p> <p>First lets create the Tabs list.  This list will be a custom list.  This list must be called “<strong>Tabs</strong>”.  Here are the columns to add.  The columns have to be the same as well for the solution to work.</p> <ul> <li><strong>Title</strong> – This is the name of the Tab.  <ul> <li><em>Description</em>: Name of the Tab.</li></ul> <li><strong>Pull Down</strong> – This is a <u>yes/no</u> field.  Selected will the pull down items.  Unselected will show no pull down or <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a>.   <ul> <li><em>Description</em>: Uncheck the box to indicate the Tab will have NO pull down.  This will eliminate the pull down image.</li></ul> <li><strong>Location</strong> – This is a <u>choice</u> field.  The choice is “Left” or “Right”.  This will tell the tab to either be on the left site of the top navigation or the right site.  <ul> <li><em>Description</em>: Choose if the tab will be to the left or right of the default taps.</li></ul> <li><strong>Tab Link</strong> – This is a <u>single line of text</u> field.  This is where the URL for the tab would go.  <ul> <li><em>Description</em>: Enter a url to give the tab a link, otherwise leave blank for no link.  Make sure link has http://</li></ul> <li><strong>Order Tabs</strong> – This is a <u>choice</u> field. Make a selection from A to K.  This will be how you order your tabs on the left or right.  <ul> <li><em>Description</em>: RIGHT orders in ascending manner. A – Z LEFT orders in descending manner. Z – A</li></ul></li></ul> <p>Next lets change the All Items view to sort and Group appropriately.  This view will dictate the the order the tabs show up.</p> <p>On All Items view you will want to Modify View and make the following changes.</p> <li><strong>Sort</strong> – Change the following:  <ul> <li>Sort by “Order Tab” in “ascending order”. </li></ul></li></div> <p><strong>Group By</strong> – Change the following: </p> <ul> <li>Group by to “Location” in “ascending order”.  <li>And set to “Expand”.</li></ul> <p> </p> <p><strong>Tab Pull Down List</strong></p> <p>Next lets add the Tab Pull Down list.  This list will be a standard links list.  This list must be called “<strong>Tab Pull Down</strong>”.  Here are the columns to add in addition to the standard columns.  The columns have to be the same as well for the solution to work.</p> <ul> <li><strong>Tab</strong> – This columns is a look up column looking up the “Tab” list with the Title column being looked up.  <li><strong>Group</strong> – This column will be used to group the links together.  So all “Help” links will be together and all “Features” links will be together.  <ul> <li>This is a <u>text</u> field or it can be a choice field if you know all the groups.   </li></ul> <li><strong>LinkType</strong> – This column will be used to identify what type of link it is.  <ul> <li>This is a <u>Choice</u> column.  <li>We have three choice types and each will cause the pull down to display the link in different way:  <ul> <li><strong>Link</strong> – This will display the item as a link within the group.  <li><strong>Header</strong> – This will display the item as a header <u>without</u> a link.  <li><strong>Header Link</strong> – This will display the item as a header <u>with</u> a link.  <ul> <li>(Header and Header Link look them same, but act differently)</li></ul></li></ul></li></ul></li></ul> <p>Next you will want to change the default All Links view to the following:</p> <ul> <li><strong>Sort</strong> – Change the following:  <ul> <li>All users to order items in this view, set to “No”.  <li>Sort by “LinkType” in “ascending order”.  <li>And Sort by “URL” in “ascending order”.</li></ul> <li><strong>Group By</strong> – Change the following:  <ul> <li>Group by to “Tab” in “ascending order”. <li>Group by to “Group” in “ascending order”.  <li>Show grouping as “Expanded”.</li></ul></li></ul> <p>This new view will be the way the items show in the pull down for the global navigation.  So you can play with the view here to sort and group it as you wish.</p> <p>Here is an example of what it should look like once you have lists setup.  You will also notice that I have made a connection between Tabs and Tab Pull down so that I can essentially filter my view to show what the tab and associated pull down items are.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/62/_attach/image_4_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_1_7EC200CF.png" width=609 height=415></a></p> <p><strong></strong> View example here: <a title="http://www.bitsofsharepoint.com/ExamplePoint/navigation2/default.aspx" href="/ExamplePoint/navigation2/default.aspx">http://www.bitsofsharepoint.com/ExamplePoint/navigation2/default.aspx</a></p> <p><strong>6) Solution Code</strong></p> <p>In version 2.0 I have made it so that you only have to change one thing and then you never have to touch this file again.   </p> <p>In the code below or in the topnavigation.js file you will need to change the following:</p> <p>    listSiteTabURL = '<a href="/topnav/%27;">http://www.bitsofsharepoint.com/topnav/';</a></p> <p>You will find this code at the top.  Change <a href="/topnav/%27;">http://www.bitsofsharepoint.com/topnav/</a> to the site that your Tab and Pull Down List are located. URL needs to be of the site location NOT of the list location. </p> <ul> <li>Incorrect Example: '<a href="http://www.intranet.com/SiteName/List/ListName/'">http://www.intranet.com/SiteName/List/ListName/'</a>  <li>Correct Example: '<a href="http://www.intranet.com/SiteName/'">http://www.intranet.com/SiteName/'</a> </li></ul> <p>Once you make that change you can save the file in your scripts library and you are done with that file.</p> <p>Here is the code to add to the topnavigation.js file or you can download the <a title=topnavigation href="/ExamplePoint/Download/topnavigation.js">topnavigation.js</a> file from here: <a title="http://www.bitsofsharepoint.com/ExamplePoint/Download/topnavigation.js" href="/ExamplePoint/Download/topnavigation.js">http://www.bitsofsharepoint.com/ExamplePoint/Download/topnavigation.js</a></p> <p></p> <p>$(document).ready(function(){<br>    listSiteTabURL = '<a href="/topnav/%27;">http://www.bitsofsharepoint.com/topnav/';</a><br>    $().SPServices({<br>        operation: &quot;GetListItems&quot;,<br>        webURL: listSiteTabURL, <br>        listName: 'Tabs',<br>        async: false,<br>        completefunc: function (xData, Status) {<br>            $(xData.responseXML).find('[nodeName=z:row]').each(function() { <br>                var i = 1; <br>                var tabSide = $(this).attr(&quot;ows_Location&quot;); <br>                var titleTabName = $(this).attr(&quot;ows_Title&quot;); <br>                var urlTab = $(this).attr(&quot;ows_Tab_x0020_Link&quot;);<br>                var tabPullDown = $(this).attr(&quot;ows_Pull_x0020_Down&quot;);<br>                var listName = 'Tab Pull Down';<br>                var listSiteURL = listSiteTabURL;<br>                var titleTabID = 'zz1_TopNavigationMenun' + titleTabName.replace(/[-' ']/g,'');<br>                var showTabPD = titleTabID + 'Show';<br>                var showTabAppend = titleTabID + 'Append';<br>                if (urlTab != null) {<br>                    var urlTabShow = 'href=' + urlTab;<br>                } else {<br>                    var urlTabShow = '';<br>                }  <p>                if (tabPullDown == true) {<br>                    var tabImage = '&lt;img style=&quot;border-style:none; vertical-align:top;&quot; alt=&quot;&quot; src=&quot;/_layouts/images/menudark.gif&quot;&gt;';<br>                    var pullDown = '&lt;div style=&quot;position:absolute;height: 0px;z-index:1;&quot;&gt;&lt;div id=&quot;' + showTabPD + '&quot; class=&quot;zz1_TopNavigationMenu_8&quot; style=&quot;display:none;position:relative;top:0px; clip: rect(auto, auto, auto, auto);z-index:1;&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;top: 0px;&quot; id=&quot;' + showTabAppend + '&quot;&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;';<br>                } else {<br>                    var tabImage = '';<br>                    var pullDown = '';<br>                }  <p>                var tableRow = '&lt;td id=&quot;' + titleTabID + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverRoot(this)&quot;&gt;&lt;table  width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; class=&quot;ms-topnav zz1_TopNavigationMenu_4&quot;&gt;&lt;tbody&gt;&lt;tr id=&quot;mouse&quot;&gt;&lt;td style=&quot;white-space: nowrap;&quot;&gt;&lt;a ' + urlTabShow + ' style=&quot;border-style: none; font-size: 1em;&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topnav zz1_TopNavigationMenu_3&quot;&gt;'    + titleTabName + '&lt;/a&gt;&lt;td valign=&quot;top&quot; style=&quot;width:0pt;&quot; &gt;'+ tabImage +'&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;'+ pullDown +'&lt;/td&gt;';<br>                if (tabSide == 'Left') {<br>                    $('table#zz1_TopNavigationMenu').children().children().prepend(tableRow);<br>                } else {<br>                    $('table#zz1_TopNavigationMenu').children().children().append(tableRow);<br>                }  <p>                $().SPServices({<br>                    operation: &quot;GetListItems&quot;,<br>                    webURL: listSiteURL, <br>                    listName: listName,<br>                    async: false,<br>                    completefunc: function (xData, Status) {<br>                        $(xData.responseXML).find('[nodeName=z:row]').each(function() { <br>                            var URLdataTN1 = $(this).attr(&quot;ows_URL&quot;).split(','); <br>                            var linksTN1 = $(this).attr(&quot;ows_LinkType&quot;);<br>                            var TabTN1 = $(this).attr(&quot;ows_Tab&quot;).split('#');<br>                            var TabC = TabTN1[1];<br>                            var notesVar = $(this).attr(&quot;ows_Comments&quot;);<br>                            if (notesVar == null) {<br>                                var notes = '';<br>                            } else {<br>                                var notes = 'title=&quot;' + notesVar + '&quot;';<br>                            }  <p>                            if (titleTabName == TabC) {<br>                                if (linksTN1 == 'Header') {<br>                                    $('#' + showTabAppend).append('&lt;tr id=&quot;zz1_TopNavigationMenun' + i + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverDynamic(this)&quot;&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; class=&quot;ms-topNavFlyOuts zz1_TopNavigationMenu_7 ms-topNavFlyOutsHover&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;white-space: nowrap; width: 100%;&quot;&gt;&lt;a style=&quot;border-style: none; font-size: 1em;&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topNavFlyOuts zz1_TopNavigationMenu_6 ms-topNavFlyOutsHover&quot; '+ notes +'&gt;&lt;strong&gt;' + URLdataTN1[1] + '&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;');<br>                                    i++;<br>                                } else if (linksTN1 == 'Header Link') {<br>                                    $('#' + showTabAppend).append('&lt;tr id=&quot;zz1_TopNavigationMenun' + i + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverDynamic(this)&quot;&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; class=&quot;ms-topNavFlyOuts zz1_TopNavigationMenu_7 ms-topNavFlyOutsHover&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;white-space: nowrap; width: 100%;&quot;&gt;&lt;a style=&quot;border-style: none; font-size: 1em;&quot; href=&quot;' + URLdataTN1[0] + '&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topNavFlyOuts zz1_TopNavigationMenu_6 ms-topNavFlyOutsHover&quot; '+ notes +'&gt;&lt;strong&gt;' + URLdataTN1[1] + '&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;');<br>                                    i++;<br>                                } else {<br>                                    $('#' + showTabAppend).append('&lt;tr id=&quot;zz1_TopNavigationMenun' + i + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverDynamic(this)&quot;&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; class=&quot;ms-topNavFlyOuts zz1_TopNavigationMenu_7&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;white-space: nowrap; width: 100%;&quot;&gt;&lt;a style=&quot;border-style: none; font-size: 1em;&quot; href=&quot;' + URLdataTN1[0] + '&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topNavFlyOuts zz1_TopNavigationMenu_6&quot; '+ notes +'&gt;' + URLdataTN1[1] + '&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;');<br>                                    i++;<br>                                }<br>                            } else {<br>                            }<br>                        });<br>                    }<br>                });  <p>                $('#' + titleTabID).mouseover(function(){<br>                    $('#' + showTabPD).show();<br>                });<br>                $('#' + titleTabID).mouseleave(function(){<br>                    $('#' + showTabPD).hide();<br>                });<br>            });<br>        }<br>    });  <p>}); <p></p> <p> </p> <p>View example here: <a title="http://www.bitsofsharepoint.com/ExamplePoint/navigation2/default.aspx" href="/ExamplePoint/navigation2/default.aspx">http://www.bitsofsharepoint.com/ExamplePoint/navigation2/default.aspx</a></p> <p>I will also be coming out with a template version that will allow you to load this without having to create the lists and libraries needed and will have the Script library populated with the needed scripts. </p> <div class=ExternalClassBB8AFD53B0834142A69B12660CEACC26> <li> <p>Hope version 2.0 helps.</p> <p></p></li></div></div></div>
<div><b>Category:</b> SharePoint;SP-CSS/Theme;SP-Document Library;SP-Lists;SP-Javascript/JQuery;SP-Navigation;SP-Site Design</div>
<div><b>Published:</b> 5/15/2010 10:26 AM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_2_475D05A6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_2_475D05A6.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_4_196FB2EE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_4_196FB2EE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_thumb_1_196FB2EE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_thumb_1_196FB2EE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_thumb_475D05A6.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/63/image_thumb_475D05A6.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-CSS/Theme;SP-Document Library;SP-Lists;SP-Javascript/JQuery;SP-Navigation;SP-Site Design</category>
      <pubDate>Sat, 15 May 2010 14:16:35 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=63</guid>
    </item>
    <item>
      <title>SharePoint – A Global Navigation Solution Across Site Collections – Version 2.0 Primer and Deployment</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=62</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClass7AC1928823754D6BA5CDD90691A5DA77>
<p>This article is going to recount my experience of adding my global navigation to my current site and highlight my next version of the global navigation solution that is a template and should make it much easier to implement, deploy and use.  If you have not read my first article <a href="/BlogPoint/Lists/Posts/ViewPost.aspx?ID=60" target="_blank">SharePoint – A Global Navigation Solution Across Site Collections</a>, please read that first.</p>
<p>This article will be broken up into two sections:</p>
<ol>
<li>What were the results and process like to deploy this solution across sites. 
<li>What new features have been added in version 2.0</li></ol>
<p><strong>Implementation Process and Results</strong></p>
<p>Let’s first take a look at the results.  My site is a WSS 3.0 version so top navigation pull downs are not an out of the box feature, just tabs are standard.  You will also notice that we indicate which tab has a pull down by the standard triangle icon <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a> .  The items are highlighted all based on SharePoint standard CSS so that when you change themes the tabs and pull downs follow.  I also added the feature that allows you to have a description pop up when you hover over a link.  All of these features are standard in MOSS.</p>
<p>Here is what the before and after view looks like.</p>
<p> <strong>BEFORE</strong></p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/62/image_9_787B2A41.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_3_787B2A41.png" width=520 height=114></a> </p>
<p><strong>AFTER</strong></p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/62/image_15_787B2A41.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_6_787B2A41.png" width=523 height=467></a> </p>
<p>Now deploying this solution involved using SharePoint designer to edit the Master pages of each site I wanted the navigation to be added to.  I then would add three lines of code.  Here is one lesson that I found quickly that affect the ease of implementation.  jQuery is a wonderful service that when implemented correctly works wonders, but when implemented incorrectly causes problems.  Nothing that can’t be fixed, but just involves extra steps.  Now I am guilty of causing these problems and it was interesting to see when I had implemented jQuery correcting, implementation of the global navigation was very easy, but when I implemented jQuery incorrectly it caused me to have extra steps.</p>
<p>What is a incorrect implementation of jQuery you may ask, well it is when you hard code a request for jQuery in a CEWP solution that causes problems.  Remember I am editing the Master Page and adding jQuery at this level.  All pages using this Master Page will load with jQuery and then all CEWP that use and have jQuery hard coded will have conflicts.  So what does that look like?  Here is hard coding the jQuery in a CEWP that will cause problems:</p>
<p>&lt;script type=&quot;text/javascript&quot; src=&quot;<a href="http://code.jquery.com/jquery-latest.js&quot;">http://code.jquery.com/jquery-latest.js&quot;</a>&gt;&lt;/script&gt;</p>
<p>Why does this cause problems?  Well when you have multiple instances of this code on the same page you will get in a conflict especially if they are different versions being called.</p>
<p>Now the correct way for any CEWP solution should be the way the Paul Grenier provides in his solutions.  It first checks to see if jQuery has been loaded and if it has it will not load another version.   Here is an example of his code.</p>
<p>&lt;script type=&quot;text/javascript&quot;&gt;<br>if(typeof jQuery==&quot;undefined&quot;){<br>    var jQPath=&quot;<a href="http://code.jquery.com/jquery-latest.js&quot;">http://code.jquery.com/</a><a href="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/&quot;;">&quot;;</a><br>    document.write(&quot;&lt;script src='&quot;,jQPath,&quot;jquery-latest.js' type='text/javascript'&gt;&lt;\/script&gt;&quot;);<br>}<br>&lt;/script&gt; 
<p>So how did I fix the sites that had this problem where the CEWP solutions had hard coded jQuery references.  Well I had to go into each CEWP that had it the wrong way and delete the reference to jQuery.  This was fine to do as I was loading jQuery in the Master Page so it will be available to the CEWP that was calling for it.</p>
<p>I will be going through my solutions that use jQuery to make sure that I am using Paul Grenier’s method so that my solutions do not cause this problem in the future. </p>
<p>Deploying this solution once implemented involved editing Master Pages on site collections where the global navigation was to be used.  In cases where the global navigation was deployed, but did not show up was a simple fix of editing the CEWP that had a reference to jQuery.</p>
<p>In my next article I will go into depth about implementing my global navigation newest version 2.0.</p>
<p><strong>Version 2.0 Global Navigation Features</strong></p>
<p>In implementing and deploying this on my site I have had time to reflect on what features were missing from MOSS and my current 1.0 version and looked at how to add these to mirror a similar experience.  As a result version 2.0 will have the following features added:</p>
<ul>
<li>Pull Down icon <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a> will only appear on those that you indicate have a pull down.  So now you can have a standard tab or a tab with pull down where the <a href="/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="menudark[1]" border=0 alt="menudark[1]" src="/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif" width=13 height=13></a> will show indicating there is more to view. 
<ul>
<li><a href="/BlogPoint/Lists/Posts/Attachments/62/image_23_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_10_7EC200CF.png" width=206 height=31></a> </li></ul>
<li>By adding comments in the notes section of the links, they will then become popups when you hover over a link. 
<ul>
<li><a href="/BlogPoint/Lists/Posts/Attachments/62/image_17_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_7_7EC200CF.png" width=244 height=74></a></li></ul>
<li>New version only requires one list for the tabs and one list for all the pull downs. </li></ul>
<p>I will also be coming out with a template version that will allow you to load this without having to create the lists and libraries needed.  You will only need to change the code in one place on the topnavigation.j file and add the three lines of code to the Master Page.  Below is an image of the template:</p>
<p><a href="/BlogPoint/Lists/Posts/Attachments/62/_attach/image_4_7EC200CF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/62/image_thumb_1_7EC200CF.png" width=609 height=415></a></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p>Next article on this matter should have the new version and the template.</p></div></div>
<div><b>Category:</b> SharePoint;SP-CSS/Theme;SP-Document Library;SP-Javascript/JQuery;SP-Lists;SP-Navigation;SP-Site Design</div>
<div><b>Published:</b> 5/12/2010 3:00 PM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_15_787B2A41.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_15_787B2A41.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_17_7EC200CF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_17_7EC200CF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_23_7EC200CF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_23_7EC200CF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_4_7EC200CF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_4_7EC200CF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_9_787B2A41.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_9_787B2A41.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_1_7EC200CF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_1_7EC200CF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_10_7EC200CF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_10_7EC200CF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_3_787B2A41.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_3_787B2A41.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_6_787B2A41.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_6_787B2A41.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_7_7EC200CF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/image_thumb_7_7EC200CF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/menudark1_2_787B2A41.gif</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/62/menudark1_thumb_787B2A41.gif</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-CSS/Theme;SP-Document Library;SP-Javascript/JQuery;SP-Lists;SP-Navigation;SP-Site Design</category>
      <pubDate>Tue, 11 May 2010 15:24:51 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=62</guid>
    </item>
    <item>
      <title>Tab Page for SharePoint Version 2.0</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=61</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClass13C1DA9D6633435DBB2B84FBEBD8AA8E><p>About a year ago I created a tabs page that allowed you to have up to 8 tabs on a page and each tab can have multiple web parts added.  One of the features that was missing was that tabs were not sticky.  If you refreshed the page it would always go back to the first tab.  Well, I have found some time to add cookies so that it will remember the last tab you were on.  This now make it much easier to edit web parts and to use tabs with document libraries and lists.</p> <p>If you have implemented the solution already then you will need to edit the page with SharePoint Designer to add the code.  Or you can download the latest version and implement with the latest version.</p> <p>You can find the latest version and instructions on how to update your current implementation here:  <a title="http://www.bitsofsharepoint.com/ExamplePoint/Site/TabPage.aspx" href="/ExamplePoint/Site/TabPage.aspx">http://www.bitsofsharepoint.com/ExamplePoint/Site/TabPage.aspx</a></p></div></div>
<div><b>Category:</b> SharePoint;SP-Document Library;SP-Javascript/JQuery;SP-Lists;SP-Site Design</div>
<div><b>Published:</b> 5/7/2010 4:24 PM</div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-Document Library;SP-Javascript/JQuery;SP-Lists;SP-Site Design</category>
      <pubDate>Fri, 07 May 2010 20:20:49 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=61</guid>
    </item>
    <item>
      <title>SharePoint - A Global Navigation Solution across Site Collections</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=60</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClassF176CE19C8D647CAB9827D3C4B28122A>
<p>Ever want to have an easier way to have a global navigation that spans across site collections?  SharePoint provides a solution for global navigation within a site collection and it works well.  But when you architect SharePoint to have multiple web apps and site collections you do not have any easy solution to create a global navigation system to span those repositories.  You would have to recreate your global navigation on each site collection.  And any changes to the global navigation would mean that you would have to go to each site collection to make the change…ouch!!!  There has got to be a better solution.</p>
<p>Thanks to Marc Anderson and Michael Greene who have created solutions that inspired me to explore solving this problem.  Marc Anderson created <a href="http://spservices.codeplex.com/" target="_blank">SPServices</a>, which is a jQuery library for SharePoint Web Services.  I am beginning to understand the power of his solution.  Then Michael Greene created a solution, <a href="http://www.endusersharepoint.com/2010/04/22/sharepoint-application-wide-quick-launch-control/" target="_blank">Application Wide Quick Launch Control</a>, where you can change or append the Quick Launch on SharePoint sites.  Michael’s solution used Marc’s SPServices and jQuery.</p>
<p>Based on what these two have done, I then looked into how we could apply this to the Top Navigation found in SharePoint.</p>
<p> <img alt="" src="/BlogPoint/Lists/Photos/example1.png"></p>
<p>My goal was to do the following:</p>
<ol>
<li>Be able to add a tab at the beginning or end of the Top Navigation bar. 
<li>Create a pull down to maximize space. 
<ul>
<li>Ever see a top nav bar with too many tabs, ouch.</li></ul>
<li>Pull down items are pulled from a standard SP Links list. 
<ul>
<li>Imagine being able to add an item to a list and it is then apart of the top navigation across site collections, yes! 
<li>WSS does not give us the ability to have a pull down, lets change that.</li></ul>
<li>Ability to order and group pull down items. 
<ul>
<li>Organization is critical to ease of use.</li></ul>
<li>Grouping Headers can be links or not. 
<li>Navigation tab and pull down changes with site theme. 
<li>Tabs can be links or not.</li></ol>
<p>What is the end product going to look like, well, something like this.  Where we have added a tab called “Services” with a pull down that is grouped.  This is a WSS site, where this is not possible out of the box.</p>
<p><a href="/BlogPoint/_attach/image_4_59757D08.png"></a> <img alt="" src="/BlogPoint/Lists/Photos/example2.png"></p>
<p>And we are pulling this from a list.  Take a look at the TopNav links list below.  You can see the grouping and ordering is working as well.</p>
<p><a href="/BlogPoint/_attach/image_10_59757D08.png"></a> <img alt="" src="/BlogPoint/Lists/Photos/topnav.png"></p>
<p>Now lets walk through what we have to do to get the above results.</p>
<p><strong>Components needed:</strong></p>
<ol>
<li>SharePoint Resource Site 
<li>SPServices by Marc Anderson 
<li>jQuery 
<li>SharePoint Designer to edit Master Pages 
<li>SharePoint Links List 
<li>Solution Code</li></ol>
<p><strong>1) SharePoint Resource Site</strong></p>
<p>I recommend that if you do not already have a site collection devoted to scripts and lists that will be accessible by all, that you create one.  This site collection will allow you to have document library where you can house your scripts like jQuery and SPServices.  It will also allow you to create lists as needed for example the one we will create to manage the pull down items in our tab.</p>
<p>So there should be a site collection where we house the below files and list and that has permissions set to all authenticated members as read only. For purposes of this article I will call this site collection Resources. I wrote an article along these lines and here it is: <a title="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Post.aspx?ID=29" href="/BlogPoint/Lists/Posts/Post.aspx?ID=29">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Post.aspx?ID=29</a></p>
<p><strong>2) SPServices by Marc Anderson</strong></p>
<p>We need to download the SPServices file that Marc Anderson has put together.  You can find it here: <a href="http://spservices.codeplex.com/">http://spservices.codeplex.com/</a> This file will be used by the script for this solution, so this will need to be added to the document library where you keep scripts.  In my case it would go into the document library in my Resources site collection.</p>
<p>Recommendation is to change the name of the file name so that it does not have a version number and should look like this, “jquery.SPServices-latest.min.js”.  This will allow you to update in the future to Marc’s latest version without having to go back to each master page and change to the new version name.</p>
<p><strong>3) jQuery</strong></p>
<p>There are two ways to work with a jQuery file.  You have a choice of downloading the latest version and putting it in scripts document library or you can point to Google's version which will always be the latest version.  This is a choice that you will make.   You can download jQuery from here: <a href="http://jquery.com/">http://jquery.com/</a></p>
<p>I would then add this script to me document library in my Resources site collection.</p>
<p><strong>4) SharePoint Designer to edit Master Pages</strong></p>
<p>You will need to have access to SharePoint Designer and be able to edit the Master Pages on the sites you want the global navigation tab to show up on.  When you edit a master page you will want to add the following code between the &lt;header&gt;&lt;/header&gt; tags as diagramed below.  
<p><a href="/BlogPoint/_attach/image_6_0762CFC1.png"></a><img alt="" src="/BlogPoint/Lists/Photos/code.png">  
<p>Here is the code you will need to add to each master page.  Make sure that the URL’s point to where you have the files housed.  They do need to be absolute URL’s, as you will be adding this code across site collections, web apps and even servers. 
<blockquote>
<p>&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://yoursite/SiteCollection/LibraryName/jquery.SPServices-latest.min.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://yoursite/SiteCollection/LibraryName/topnavigation.js&quot;&gt;&lt;/script&gt; </p></blockquote>
<p>For example if I put “jquery-latest.js”, “jquery.SPServices-latest.min.js”, and “topnavigation.js” in my Resoures site collection in the document library called ScriptsLibrary, then it would look like this:</p>
<blockquote>
<p>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bitsofsharepoint.com/Resources/ScriptsLibrary/jquery-latest.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bitsofsharepoint.com/Resources/ScriptsLibrary/jquery.SPServices-latest.min.js&quot;&gt;&lt;/script&gt;<br>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bitsofsharepoint.com/Resources/ScriptsLibrary/topnavigation.js&quot;&gt;&lt;/script&gt; </p></blockquote>
<p><strong>5) SharePoint Links List</strong></p>
<p>Now to create the ease of updating and managing the content in the pull down for the tab, we will need to have a list where the solution can pull the links from.  But we also need to create some organization and groupings. So will will create a links list and add some additional columns.</p>
<p>In my Resources site collection I will create a list called TopNav, you are free to name it what you like.  This TopNav list will be a Links list.  Once created we need to add a couple of other columns:</p>
<ul>
<li><strong>Group</strong> – This column will be used to group the links together.  So all “Help” links will be together and all “Features” links will be together.  
<ul>
<li>This is a <u>text</u> field or it can be a choice field if you know all the groups.   </li></ul>
<li><strong>LinkType</strong> – This column will be used to identify what type of link it is. 
<ul>
<li>This is a <u>Choice</u> column.  
<li>We have three choice types and each will cause the pull down to display the link in different way: 
<ul>
<li><strong>Link</strong> – This will display the item as a link within the group. 
<li><strong>Header</strong> – This will display the item as a header <u>without</u> a link. 
<li><strong>Header Link</strong> – This will display the item as a header <u>with</u> a link. 
<ul>
<li>(Header and Header Link look them same, but act differently)</li></ul></li></ul></li></ul></li></ul>
<p>Next you will want to change the default All Links view to the following:</p>
<ul>
<li><strong>Sort</strong> – Change the following: 
<ul>
<li>All users to order items in this view, set to “No”. 
<li>Sort by “LinkType” in “ascending order”. 
<li>And Sort by “URL” in “ascending order”.</li></ul>
<li><strong>Group By</strong> – Change the following: 
<ul>
<li>Group by to “Group” in “ascending order”. 
<li>Show grouping as “Expanded”.</li></ul></li></ul>
<p>This new view will be the way the items show in the pull down for the global navigation.  So you can play with the view here to sort and group it as you wish.</p>
<p>Here is an example of what it should look like once you have several links listed.</p>
<p><a href="/BlogPoint/_attach/image_10_59757D08.png"></a><img alt="" src="/BlogPoint/Lists/Photos/topnav.png"> </p>
<p>Almost there……yeah.</p>
<p><strong>6) Solution Code</strong></p>
<p>Ok, now for the code that will make this all work together.  There is a file called topnavigation.js that we will need to be created and edited to make it work in your environment.  </p>
<p>In my case it would go into the document library in my Resources site collection.</p>
<p>To make this script work you will need to provide several pieces of data which are listed out below. 
<ol>
<li><strong>[tabSide]</strong> - Specify either 'append' or 'prepend'. This will indicated if the new tab will go before or after the default tabs. 
<ul>
<li>Tab front Example: 'prepend' 
<li>Tab End Example: 'append'</li></ul>
<li><strong>[titleTabName]</strong> - Specify a name for the tab, this will be displayed in the tab. 
<ul>
<li>Tab Name Example: 'Intranet'</li></ul>
<li><strong>[urlTab]</strong> - Specify a link only if you want the tab to be clickable, otherwise leave blank with two quotes, ''. 
<ul>
<li>Link Example: '<a href="http://www.google.com'/">http://www.google.com'</a> 
<li>No Link Example: ''</li></ul>
<li><strong>[listName]</strong> - Specify the name of the list for the pull down. 
<ul>
<li>List Name Example: 'Links'</li></ul>
<li><strong>[listSiteUrl]</strong> - Specify the url of the site where the list is located. URL needs to be of the site location NOT of the list location. 
<ul>
<li>Incorrect Example: '<a href="http://www.intranet.com/SiteName/List/ListName/'">http://www.intranet.com/SiteName/List/ListName/'</a> 
<li>Correct Example: '<a href="http://www.intranet.com/SiteName/'">http://www.intranet.com/SiteName/'</a> </li></ul></li></ol>
<p>All above variables will then be constructed as follows, make sure that each field has a ' at the beginning and end of each. 
<ul>
<li>Construct: 
<ul>
<li>extendedTabs('[tabSide]','[titleTabName]','[urlTab]','[listName]','[listSiteURL]')</li></ul>
<li>Example: 
<ul>
<li>extendedTabs('append','Projects','<a href="http://www.sites.com/Projects/','Projects','http://www.site.com/Resources/');">http://www.sites.com/Projects/','Projects','http://www.site.com/Resources/');</a> 
<li>This example adds: 
<ul>
<li>A tab at the end 
<li>A link for the Tab to the Project site 
<li>The list for the pull down is called Projects 
<li>The list resides in the Resources site. </li></ul></li></ul></li></ul>
<p>You can have multiple extendTabs like so: 
<p>    extendedTabs('append','Projects','','Projects','<a href="/ConsultingPoint/ClientPoint/snc/%27);">http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/');</a><br>    extendedTabs('append','Team Sites II','<a href="http://www.google.com','team/">http://www.google.com','Team</a> Sites','<a href="/ConsultingPoint/ClientPoint/snc/%27);">http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/');</a><br>    extendedTabs('prepend','Intranet II','<a href="/ConsultingPoint/ClientPoint/snc/default.aspx%27,%27Links%27,%27http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/%27);">http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/default.aspx','Links','http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/');</a> 
<ol></ol>
<p>There will be three tabs added, with one added the to the front and two added to the back.</p>
<p>Placement of your extendedTabs will dictate the order the tabs are displayed.</p>
<p>Here is the code to add to the topnavigation.js file or you can download the <a href="/ExamplePoint/CodeExamples/topnavigation.js" target="_blank">topnavigation.js</a> file from here: <a title="http://www.bitsofsharepoint.com/ExamplePoint/CodeExamples/topnavigation.js" href="/ExamplePoint/CodeExamples/topnavigation.js">http://www.bitsofsharepoint.com/ExamplePoint/CodeExamples/topnavigation.js</a></p>
<blockquote>
<p>$(document).ready(function(){<br>/*<br>Extended Tabs by Peter Allen<br>Version 1.0 5/3/2010<br>Purpose: Add a tabs to the beginning (prepend) or end (append) of the default SharePoint Top Navigation tabs.<br>Script Setup: To make this script work you will need to provide several pieces of data which are listed out below. 
<p>[tabSide] - Specify either 'append' or 'prepend'. This will indicated if the new tab will go before or after the default tabs.<br>                Tab front Example: 'prepend'<br>                Tab End Example: 'append'<br>[titleTabName] - Specify a name for the tab, this be displayed in the tab. <br>                Tab Name Example: 'Intranet'<br>[urlTab] - Specify a link only if you want the tab to be clickable, otherwise leave blank with with two quotes, ''. <br>                Link Example: '<a href="http://www.google.com'/">http://www.google.com'</a><br>                No Link Example: ''<br>[listName] - Specify the name of the list for the pull down.<br>                List Name Example: 'Links'<br>[listSiteUrl] - Specify the url of the site where the list is located. URL needs to be of the site location NOT of the list location.<br>                Incorrect Example: '<a href="http://www.intranet.com/SiteName/List/ListName/'">http://www.intranet.com/SiteName/List/ListName/'</a><br>                Correct Example: '<a href="http://www.intranet.com/SiteName/'">http://www.intranet.com/SiteName/'</a> 
<p>All above variables will then be constructed as follows, make sure that each field has a ' at the begining and end of each. 
<p>Construct:<br>    extendedTabs('[tabSide]','[titleTabName]','[urlTab]','[listName]','[listSiteURL]')<br>Example:<br>    extendedTabs('append','Projects','<a href="http://www.sites.com/Projects/','Projects','http://www.site.com/Resources/');">http://www.sites.com/Projects/','Projects','http://www.site.com/Resources/');</a><br>This example adds a tab called Projects at the end, tab links to the Project site, the list for the pull down is called Projects and the list resides in the Resources site. 
<p>You can have multiple extendTabs like so: 
<p>    extendedTabs('append','Projects','','Projects','<a href="/ConsultingPoint/ClientPoint/snc/%27);">http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/');</a><br>    extendedTabs('append','Team Sites II','<a href="http://www.google.com','team/">http://www.google.com','Team</a> Sites','<a href="/ConsultingPoint/ClientPoint/snc/%27);">http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/');</a><br>    extendedTabs('prepend','Intranet II','<a href="/ConsultingPoint/ClientPoint/snc/default.aspx%27,%27Links%27,%27http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/%27);">http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/default.aspx','Links','http://www.bitsofsharepoint.com/ConsultingPoint/ClientPoint/snc/');</a> 
<p>Placement of your extendedTabs will dictate the order the tabs are displayed. 
<p>*/ 
<p>//    Place your extendedTabs below: 
<p>    extendedTabs('append','Projects','http://www.site.com/site/default.aspx','Projects','<a href="http://www.site.com/site/');">http://www.site.com/site/');</a><br>    </p>
<p>    var i = 1; <br>    function extendedTabs(tabSide,titleTabName,urlTab,listName,listSiteURL) { 
<p>        var titleTabID = 'zz1_TopNavigationMenun' + titleTabName.replace(/[-' ']/g,'');<br>        var showTabPD = titleTabID + 'Show';<br>        var showTabAppend = titleTabID + 'Append'; 
<p>        if (urlTab != '') {<br>            var urlTabShow = 'href=' + urlTab;<br>        } else {<br>            var urlTabShow = '';<br>        } 
<p>            var tableRow = '&lt;td id=&quot;' + titleTabID + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverRoot(this)&quot;&gt;&lt;table  width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; class=&quot;ms-topnav zz1_TopNavigationMenu_4&quot;&gt;&lt;tbody&gt;&lt;tr id=&quot;mouse&quot;&gt;&lt;td style=&quot;white-space: nowrap;&quot;&gt;&lt;a ' + urlTabShow + ' style=&quot;border-style: none; font-size: 1em;&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topnav zz1_TopNavigationMenu_3&quot;&gt;'    + titleTabName + '&lt;/a&gt;&lt;td valign=&quot;top&quot; style=&quot;width:0pt;&quot; &gt;&lt;img style=&quot;border-style:none; vertical-align:top;&quot; alt=&quot;&quot; src=&quot;/_layouts/images/menudark.gif&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;position:absolute;height: 0px;z-index:1;&quot;&gt;&lt;div id=&quot;' + showTabPD + '&quot; class=&quot;zz1_TopNavigationMenu_8&quot; style=&quot;display:none;position:relative;top:0px; clip: rect(auto, auto, auto, auto);z-index:1;&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;top: 0px;&quot; id=&quot;' + showTabAppend + '&quot;&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;';<br>        if (tabSide == 'prepend') {<br>            $('table#zz1_TopNavigationMenu').children().children().prepend(tableRow);<br>        } else {<br>            $('table#zz1_TopNavigationMenu').children().children().append(tableRow); 
<p>        } 
<p>        $().SPServices({ 
<p>            operation: &quot;GetListItems&quot;, 
<p>            webURL: listSiteURL, 
<p>            listName: listName, 
<p>            completefunc: function (xData, Status) { 
<p>                $(xData.responseXML).find('[nodeName=z:row]').each(function() { 
<p>                    var URLdataTN1 = $(this).attr(&quot;ows_URL&quot;).split(','); 
<p>                    var linksTN1 = $(this).attr(&quot;ows_LinkType&quot;); 
<p>                    if (linksTN1 == 'Header') { 
<p>                        $('#' + showTabAppend).append('&lt;tr id=&quot;zz1_TopNavigationMenun' + i + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverDynamic(this)&quot;&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; class=&quot;ms-topNavFlyOuts zz1_TopNavigationMenu_7 ms-topNavFlyOutsHover&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;white-space: nowrap; width: 100%;&quot;&gt;&lt;a style=&quot;border-style: none; font-size: 1em;&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topNavFlyOuts zz1_TopNavigationMenu_6 ms-topNavFlyOutsHover&quot;&gt;&lt;strong&gt;' + URLdataTN1[1] + '&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;');<br>                        i++; 
<p>                    } else if (linksTN1 == 'Header Link') { 
<p>                        $('#' + showTabAppend).append('&lt;tr id=&quot;zz1_TopNavigationMenun' + i + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverDynamic(this)&quot;&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; class=&quot;ms-topNavFlyOuts zz1_TopNavigationMenu_7 ms-topNavFlyOutsHover&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;white-space: nowrap; width: 100%;&quot;&gt;&lt;a style=&quot;border-style: none; font-size: 1em;&quot; href=&quot;' + URLdataTN1[0] + '&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topNavFlyOuts zz1_TopNavigationMenu_6 ms-topNavFlyOutsHover&quot;&gt;&lt;strong&gt;' + URLdataTN1[1] + '&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;'); 
<p>                        i++; 
<p>                    } else { 
<p>                        $('#' + showTabAppend).append('&lt;tr id=&quot;zz1_TopNavigationMenun' + i + '&quot; onkeyup=&quot;Menu_Key(event)&quot; onmouseout=&quot;Menu_Unhover(this)&quot; onmouseover=&quot;Menu_HoverDynamic(this)&quot;&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; class=&quot;ms-topNavFlyOuts zz1_TopNavigationMenu_7&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;white-space: nowrap; width: 100%;&quot;&gt;&lt;a style=&quot;border-style: none; font-size: 1em;&quot; href=&quot;' + URLdataTN1[0] + '&quot; class=&quot;zz1_TopNavigationMenu_1 ms-topNavFlyOuts zz1_TopNavigationMenu_6&quot;&gt;' + URLdataTN1[1] + '&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;');<br>                        i++; 
<p>                    } 
<p>                }); 
<p>            } 
<p>        }); 
<p>        $('#' + titleTabID).mouseover(function(){ 
<p>            $('#' + showTabPD).show(); 
<p>        });<br>        $('#' + titleTabID).mouseleave(function(){ 
<p>            $('#' + showTabPD).hide(); 
<p>        }); 
<p>    } 
<p>});</p></blockquote>
<p>OK, now lets pull this all together. 
<ol>
<li>Document Library where the following is housed: 
<ul>
<li>jquery-latest.js 
<li>jquery.SPServices-latest.min.js 
<li>topnavigation.js”</li></ul>
<li>A links list created called TopNav 
<ol>
<li>Added columns: 
<ol>
<li>Group 
<li>LinkType</li></ol>
<li>Changed All Links View</li></ol>
<li>Modified topnavigation.js file as outlined. 
<ol>
<li>Add a extendedTab call.</li></ol>
<li>Edited masters pages with SharePoint Designer to add the three lines of code.</li></ol>
<p>You should now be seeing something like this.</p>
<p><a href="/BlogPoint/_attach/image_4_59757D08.png"></a><img alt="" src="/BlogPoint/Lists/Photos/example2.png"> </p>
<p></p>
<p></p>
<p> </p>
<p>Here is a working example: <a title="http://www.bitsofsharepoint.com/ExamplePoint/Navigation/default.aspx" href="/ExamplePoint/Navigation/default.aspx">http://www.bitsofsharepoint.com/ExamplePoint/Navigation/default.aspx</a></p>
<p>Hope this helps.</p></div></div>
<div><b>Category:</b> SharePoint;SP-Navigation;SP-Lists;SP-Javascript/JQuery;SP-Document Library;SP-Site Design</div>
<div><b>Published:</b> 5/3/2010 7:15 PM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_10_59757D08.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_10_59757D08.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_2_59757D08.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_2_59757D08.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_4_59757D08.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_4_59757D08.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_6_0762CFC1.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_6_0762CFC1.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_1_59757D08.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_1_59757D08.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_2_0762CFC1.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_2_0762CFC1.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_4_59757D08.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_4_59757D08.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_59757D08.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/60/image_thumb_59757D08.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-Navigation;SP-Lists;SP-Javascript/JQuery;SP-Document Library;SP-Site Design</category>
      <pubDate>Mon, 03 May 2010 23:15:02 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=60</guid>
    </item>
    <item>
      <title>Site Owners – Display and Manage</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=56</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClassF51B2C504BF242B5AA463D0108196B30><p>One of the challenges I have with SharePoint is knowing who the site owner is for any given site or sub-site.  Ownership is a critical component of any deployment.  But ownership should be clearly communicated and maintained.  </p> <p>When I work on a deployment one area that I work on with the organization is to identify who the site owners are.  Once this is identified we need to communicate this on the site.  But if we rely on each owner to identify this on their site we will have different implementations of this, inconsistency for the end-user to follow and a decentralized setup.  Also, there would be no easy way to see who all the site owners are and it would be a lot of work to go to each site to take note.  Also, I always recommend that site owners create a club (this sounds so much more fun and less formal then a committee) that can meet on a monthly basis to talk best practices and share experiences and solutions.  </p> <p>Since SharePoint does not have any easy way to identify the site owner and provide a central location to track all this, I have come up with a solution.  Below you will find my solution to the problem.</p> <p>The solution involves a content editor web part (CEWP), a centralized list with a couple of views and a document library.  The CEWP will be placed in every site collection and sub site.  The CEWP will point to a script that will show the correct site owner based on the site URL.  The list will house a list of all owners and the sites they own.  The document library will house the script used. </p> <p>Here is an overview of how it will work.  By having the CEWP pulling both the script and list from a central place, you get the benefit of being able to change the ownership from a central place and if you want to customize the script you can do this too and it will be populated to all sites.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/56/image_10_69529E28.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/56/image_thumb_69529E28.png" width=315 height=184></a> </p> <p>The result will look like this.  You can then outline who the site owner is and even adding listing like helpdesk, designer or admin.  These all can be added at any time.</p> <p></p> <p><a href="/BlogPoint/Lists/Posts/Attachments/56/image_6_08EB0323.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/56/image_thumb_2_73F980AF.png" width=201 height=173></a> </p> <p>The final result would look something like this:</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/56/image_8_73F980AF.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/56/image_thumb_3_73F980AF.png" width=633 height=387></a> </p> <p>Here is a link to the details on how to add this to your SharePoint deployment.</p> <p><a title="http://www.bitsofsharepoint.com/ExamplePoint/Site/SiteOwner.aspx" href="/ExamplePoint/Site/SiteOwner.aspx">http://www.bitsofsharepoint.com/ExamplePoint/Site/SiteOwner.aspx</a></p> <p>Hope this helps,</p> <p>Peter</p></div></div>
<div><b>Published:</b> 3/22/2010 11:54 AM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_10_69529E28.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_10_69529E28.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_4_08EB0323.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_4_08EB0323.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_6_08EB0323.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_6_08EB0323.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_8_73F980AF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_8_73F980AF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_1_08EB0323.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_1_08EB0323.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_2_73F980AF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_2_73F980AF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_3_73F980AF.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_3_73F980AF.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_69529E28.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/56/image_thumb_69529E28.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <pubDate>Mon, 22 Mar 2010 15:54:34 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=56</guid>
    </item>
    <item>
      <title>JQuery - Manage Multiple implementations of a JQuery Solution</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=29</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClass0A8176A9319940A1918436820AC7CFE0>
<div>This post is all about how do you manage all of the great solutions being created with JQuery and Javascripts.  Most of these solutions request that you put the solutions into a CEWP and paste the code into the Source Editor.  This is fine if you do it once or twice, but what if you deploy this on many many sites?  </div>
<p>How do you update the script when changes are made? You will have to remember each location and update the CEWP. No thank you.</p>
<p>I started out this way and quickly realized that I was going down a road that would lead to insanity, keeping track and managing all the CEWP with the code.</p>
<p>Solution:</p>
<p>Centralize all these great solutions/scripts into one location and then have each CEWP link to the centralized script.  All the JQuery and Javascript solutions can be saved as a .txt file.</p>
<p>Can this be done? YES.</p>
<p>The CEWP gives us the ability to link to a text file, where we can have a JQuery or Javascript code.  Now we are talking!  See the image below.</p>
<p><img alt="" src="/BlogPoint/Lists/Photos/cewp.JPG"></p>
<p>This image shows me using the Content link to link back to the central location that I have JQuery solutions in text files.  When I update the file tip-document-right.txt with an updated script all location where I have deployed this way will be instantly updated. The is GREAT!</p>
<p>Now there are two wonderful things about this.  </p>
<ol>
<li>One is that we can add a CEWP anywhere and link to the script file in a central place.</li>
<li>Two is that you can export the CEWP and create a webpart that can be used by anyone.  This webpart would have the link to the central script site.  </li></ol>
<p>You now can let everyone use the script solution or webpart AND have the ability to update the script and know that the update will be populated every where the CEWP/webpart and link was deployed.</p>
<p>You will then have the freedom to let others utilize the solution and be able manage the script.  Your site will then begin to look like this:</p>
<p><img alt="" src="/BlogPoint/Lists/Photos/SiteCollection.jpeg"></p>
<p>Christophe at pathtosharepoint.wordpress.com has a great article on how to implement something similar.  His solution is about having a single script file that is used across sites.  This works well when you want to have the same scripts available to multiple sites.  Check out his post here: <a href="http://pathtosharepoint.wordpress.com/2009/02/15/a-content-editor-web-part-for-every-home/">http://pathtosharepoint.wordpress.com/2009/02/15/a-content-editor-web-part-for-every-home/</a></p>
<p>My post is about how do you let your users have access to these solutions, add only the ones they want, still maintain control of managing the script, be able to update the script and have all site instantly benefit from the update.</p>
<p>Hope this helps,</p>
<p>Peter</p></div></div>
<div><b>Category:</b> SP-Javascript/JQuery;SharePoint</div>
<div><b>Published:</b> 2/19/2009 1:43 AM</div>
]]></description>
      <author>Peter Allen</author>
      <category>SP-Javascript/JQuery;SharePoint</category>
      <pubDate>Thu, 19 Feb 2009 07:14:50 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=29</guid>
    </item>
    <item>
      <title>Search Lists and Document Libraries by Metadata</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=59</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClassC84C544A660C49C3B5CAB6BD9EFCC060><p>A while back I create a solution that would filter a list by the metadata, but would only do this for items and metadata viewable in the current list view.  Here are the original articles:</p> <ul> <li><a href="http://www.endusersharepoint.com/2009/10/30/jquery-list-and-document-library-search-solution-in-sharepoint/" target="_blank">jQuery – List and Document Library Search Solution in SharePoint</a></li> <li><a href="http://www.endusersharepoint.com/2009/11/11/jquery-–-list-and-document-library-filter-version-2-0-part-2/" target="_blank">jQuery – List and Document Library Filter Version 2.0 – Part 2</a></li></ul> <p>Thanks to all the good feedback and suggestions I have created another solution that will allow you to search any list by its metadata and will search ALL items visible or not.  Another feature I have added into this solution is that it can be placed on any pages and when the person searches it will taken them to results page.  </p> <p>In order to do this we will need to have access to SharePoint designer and have permissions to edit with SharePoint designer.  SharePoint designer will be used to create a Data View Web Part where results will be displayed.</p> <p>There are two main steps to create this search.</p> <ol> <li>Create a Search Results page.  <li>Add the Search Web Part to any page.</li></ol> <p>Let’s go over the process of creating a search page.</p> <p>Create a Web Part Page.</p> <p>Next edit it in SharePoint Designer.</p> <p>Now add a Data View Web Part to a Web Part Zone.  To do this you will need to select the list or library from the Data Source Library.  The list or library you choose will be the one that is search with this solution.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_2_1A3DFB31.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_1A3DFB31.png" width=206 height=301></a> </p> <p>Then select the what columns want to show. Also add them as a Multiple Item View.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_4_1A3DFB31.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_1_1A3DFB31.png" width=203 height=303></a> </p> <p>When you save the file you will get a warning, don’t worry go ahead and say yes.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_6_1A3DFB31.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_2_1A3DFB31.png" width=609 height=203></a> </p> <p></p> <p></p> <p>Next you will customize how the list is filtered.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_10_1A3DFB31.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_4_1A3DFB31.png" width=610 height=193></a> </p> <p>Choose what fields you will filter on or have the search look through.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_12_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_5_054C78BE.png" width=612 height=182></a> </p> <p>For the comparison make sure you select contains so that it is not an exact match.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_16_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_7_054C78BE.png" width=614 height=172></a> </p> <p></p> <p>Next for Value your are going to select Create a New Parameter.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_18_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_8_054C78BE.png" width=614 height=175></a> </p> <p>Complete the parameter with the following:</p> <ul> <li>Name: Search  <li>Parameter Source: Query String (this is how it looks at the URL for the search criteria)  <li>Query String Variable: Search</li></ul> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_20_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_9_054C78BE.png" width=608 height=200></a> </p> <p>For each field/column that you want to search add another to the list and make sure the And/Or is set to Or.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_22_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_10_054C78BE.png" width=611 height=176></a></p> <p>When you click OK your list of items will disappear, but that is OK and is expected.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_24_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_11_054C78BE.png" width=615 height=195></a> </p> <p>You are now done with the first major part.  If you want to customize the list more, feel free to do so.  To customize the Data View web part that has nothing showing just check the box under “Common Data View Tasks” called “Show with sample data”.</p> <p>The last part is to load the Search Web Part.  This web part is one that I created and will need to be downloaded placed on any page of your SharePoint site.  I would add this to the Search Results page as well.</p> <p><a title="Search_List" href="/ExamplePoint/CodeExamples/Search_List.dwp">Search_List</a>: <a title="http://www.bitsofsharepoint.com/ExamplePoint/CodeExamples/Search_List.dwp" href="/ExamplePoint/CodeExamples/Search_List.dwp">http://www.bitsofsharepoint.com/ExamplePoint/CodeExamples/Search_List.dwp</a></p> <p>Next edit the Web Part with the Rich Text Editor and change the following:</p> <ul> <li><strong>Search Results Location</strong>:  This should be the full URL of where the Search Results page you created with the Data View Web Part is.  <li><strong>Search Box Location</strong>: Designate if it will be on the left, center or right.  <li><strong>Search Title</strong>:  Name your search so that your end users know what they are searching.</li></ul> <p><a href="/BlogPoint/Lists/Posts/Attachments/59/image_14_054C78BE.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/59/image_thumb_3_054C78BE.png" width=568 height=375></a> </p> <p>Then save the changes and you should be able to search your list and view the results.</p> <p>Here you can find a working example: <a title="List and Document Library Search" href="/ExamplePoint/Site/ListSearchII.aspx">List and Document Library Search</a></p></div></div>
<div><b>Published:</b> 4/28/2010 11:59 AM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_10_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_10_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_12_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_12_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_14_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_14_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_16_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_16_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_18_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_18_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_2_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_2_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_20_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_20_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_22_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_22_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_24_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_24_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_4_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_4_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_6_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_6_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_1_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_1_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_10_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_10_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_11_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_11_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_2_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_2_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_3_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_3_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_4_1A3DFB31.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_4_1A3DFB31.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_5_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_5_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_7_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_7_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_8_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_8_054C78BE.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_9_054C78BE.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/59/image_thumb_9_054C78BE.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <pubDate>Wed, 28 Apr 2010 15:59:41 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=59</guid>
    </item>
    <item>
      <title>SharePoint Information Architecture with MindManager by MindJet</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=58</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClass14C016135B004B50A6079C3D0E6B6C51><p>Mind mapping works so well for creating high level and detailed designs of your SharePoint Information Architecture or taxonomy.  I have been using <a href="http://www.mindjet.com/" target="_blank">MindManager</a> for the last 5 years and found it to be a wonderful tool to communicate information in a clear graphical view.  A SharePoint Information Architecture or taxonomy cries out for this kind of view.  </p> <p>I spoke at the Sacramento SharePoint Users Group on the subject of using <a href="http://www.mindjet.com/" target="_blank">MindManager from MindJet</a> to help outline and communicate a SharePoint site design and taxonomy.  In working with various clients I have developed a template that I use to outline an Information Architecture design to meet their requirements.  </p> <p>When I develop these designs with clients I focus on two types of maps.  First I focus on a high level map then I proceed to a more detailed map that gets into the actual settings.  When developing these maps I will focus on several key aspects:</p> <ul> <li><strong>Access or Permissions or Authentication</strong>: This is one of the critical areas that can dictate a lot about the site design.  <ul> <li>Key aspect: Don’t break permission in your design.  As your site grows broken permission will cause great hardship to maintain and with user experience.</li></ul> <li><strong>Content</strong>: Understanding the following will help you to organize your site design.  <ul> <li>Use of the content Projects, quick collaboration, department collaboration, repeatable development, reporting, records management, etc.  <li>Trusted or in development:  Many implementations mix trusted and in development content with each other making finding the right information very difficult and frustrating for end users.</li></ul> <li><strong>Purpose</strong>:  Internal use or will clients need access, department specific or cross department needs, etc.  <li><strong>Volume</strong>: How much content and how much traffic is expected.  This will help determine if a separate Web App is required.  <li><strong>Data Criticality</strong>: How critical is that data being up 99.9% of the time.  This can also determine if a separate Web App is required.</li></ul> <p>This information will really help to shape how the Information Architecture and taxonomy should be laid out.  Here is an example of a high level site design.  I find it to be one of the best ways to have a meaningful discussion about how content will be used in the organization.   </p> <p><a href="/BlogPoint/Lists/Posts/Attachments/58/CompanySiteStructure_2_14063882.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Company Site Structure" border=0 alt="Company Site Structure" src="/BlogPoint/Lists/Posts/Attachments/58/CompanySiteStructure_thumb_14063882.png" width=732 height=177></a></p> <p>Example: <a title="ABC Site Structure" href="/ExamplePoint/Documents/ABC%20Site%20Structure.pdf">ABC Site Structure</a> – PDF Format</p> <p>Once this is created and agreed upon we can then proceed to the detailed design, which gets into the nuts and bolts of implementing the overall plan.  </p> <p>I have designed a template that makes it easy to drag an drop sites, libraries, lists, site columns and site content types in to build out your site design.  I have even included Web Apps so that you can also identify the Web Apps that need to be created and the site collections that will reside in them.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_4_14063882.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ABC Site Structure" border=0 alt="ABC Site Structure" src="/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_thumb_1_14063882.png" width=745 height=168></a> </p> <p>Example: <a title="Company Site Structure" href="/ExamplePoint/Documents/Company%20Site%20Structure.pdf">Company Site Structure </a>– PDF Format</p> <p>Here is a closer look at the details found within a Web App and Site Collection.  Each item that has a + will expand to show the details or settings for each one. </p> <p><a href="/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_2_14063882.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ABC Site Structure" border=0 alt="ABC Site Structure" src="/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_thumb_14063882.png" width=589 height=361></a> </p> <p></p> <p>With the <a href="http://www.mindjet.com/" target="_blank">MindManager</a> software I am able to take complex maps and drill down to just the content that I need to look at.  For example I can filter the map to just show document libraries.  This will then allow me to only show the document libraries throughout the site and the settings associated with those libraries.  So if the policy changed to versioning copies going from 10 to 5 I can easily change it by filtering it down to document libraries and then the setting for each document library.</p> <p>Based on my workings with clients I have come up with a template that I use to build out the detail diagram for implement SharePoint site design and taxonomy.  Currently they are broken down to four major areas.</p> <ul> <li>Web App and Sites – You can add a web app along with a site or you can copy the site and add it to an existing web app.  <li>List and Libraries – Select a Document Library or a List to add to your site collection or sub site.  <li>Content Types – Select to a Content Type to add to a site collection or site.  I recommend in the list and libraries to just reference a content type and not document it at the list level.  <li>Columns – Select a column to add a column at the site collection level or the list or library level.</li></ul> <p><a href="/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructurePartsII_2_14063882.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="SharePoint Site Structure Parts II" border=0 alt="SharePoint Site Structure Parts II" src="/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructurePartsII_thumb_7F14B60E.png" width=476 height=129></a> </p> <p>When you expand the above you can see that you get a lot granularity with designing your SharePoint deployment.  When this is all completed you can easily had this off to someone else to implement and they will know exactly what to do for each and every site and list.</p> <p><a href="/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructureParts_2_7F14B60E.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="SharePoint Site Structure Parts" border=0 alt="SharePoint Site Structure Parts" src="/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructureParts_thumb_7F14B60E.png" width=758 height=812></a></p> <p>Example: <a title="SharePoint Site Structure Parts" href="/ExamplePoint/Documents/SharePoint%20Site%20Structure%20Parts.pdf">SharePoint Site Structure Parts</a> – PDF Format</p> <p>Template: <a title="SharePoint Site Structure Parts" href="/ExamplePoint/Documents/SharePoint%20Site%20Structure%20Parts.mmap">SharePoint Site Structure Parts Template</a> – MindManager Map Format</p> <p>Other benefits of the <a href="http://www.mindjet.com/" target="_blank">MindManager</a> is that not everyone has to have the software to be able to review and discuss the detailed maps.  <a href="http://www.mindjet.com/" target="_blank">MindManager</a> has an expansive export capability.  When you get into complex maps, as this one, you will use one of the many export methods to collaborate with.  I can tell you Export as Mindjet Player is the best export for complex maps and gives all involved an easy way to explore the map.  The Export as Mindjet Player produces a PDF that anyone with a viewer can see and interact with.  Yes, that is correct, you can expand and collapse just like you were in <a href="http://www.mindjet.com/" target="_blank">MindManager</a>.  Here is an example that you can interact with. Example: <a title="ABC Site Structure" href="/ExamplePoint/Documents/ABC%20Site%20Structure.pdf">ABC Site Structure</a></p> <p>In conclusion, this tool, <a href="http://www.mindjet.com/" target="_blank">MindManager by MindJet</a>, allows you to create very complex Information Architected sites and taxonomy maps for SharePoint deployment that make it much easier to understand what is be designed and much easier to document and implement.</p> <p>Here is all of the documentation:</p> <ol> <li><a title="SharePoint Site Structure Parts" href="/ExamplePoint/Documents/SharePoint%20Site%20Structure%20Parts.mmap">SharePoint Site Structure Parts Template</a> – MindManager Map Format  <li><a title="SharePoint Site Structure Parts" href="/ExamplePoint/Documents/SharePoint%20Site%20Structure%20Parts.pdf">SharePoint Site Structure Parts</a> – PDF Format  <li><a title="Company Site Structure" href="/ExamplePoint/Documents/Company%20Site%20Structure.pdf">Company Site Structure Example</a> – PDF Format  <li><a title="ABC Site Structure" href="/ExamplePoint/Documents/ABC%20Site%20Structure.pdf">ABC Site Structure Example</a> – PDF Format  <li><a href="http://www.mindjet.com/" target="_blank">MindManager by MindJet</a> - Software</li></ol> <p>Hope this helps,</p> <p>Peter</p></div></div>
<div><b>Category:</b> SharePoint;SP-Navigation;SP-Lists;SP-Document Library;SP-Site Design</div>
<div><b>Published:</b> 4/15/2010 8:07 PM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_2_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_2_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_4_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_4_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_thumb_1_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_thumb_1_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_thumb_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/ABCSiteStructure_thumb_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/CompanySiteStructure_2_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/CompanySiteStructure_2_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/CompanySiteStructure_thumb_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/CompanySiteStructure_thumb_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructureParts_2_7F14B60E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructureParts_2_7F14B60E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructureParts_thumb_7F14B60E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructureParts_thumb_7F14B60E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructurePartsII_2_14063882.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructurePartsII_2_14063882.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructurePartsII_thumb_7F14B60E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/58/SharePointSiteStructurePartsII_thumb_7F14B60E.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-Navigation;SP-Lists;SP-Document Library;SP-Site Design</category>
      <pubDate>Fri, 16 Apr 2010 00:07:36 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=58</guid>
    </item>
    <item>
      <title>SharePoint Themes – More than Pretty Colors – Information Architecture</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=57</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClass167A413178354F1D8F3DC5E8448A8D61><p>This was first posted at EndUserSharePoint.com: <a href="http://www.endusersharepoint.com/2010/04/12/sharepoint-themes-–-more-than-pretty-colors-–-information-architecture/">http://www.endusersharepoint.com/2010/04/12/sharepoint-themes-–-more-than-pretty-colors-–-information-architecture/</a></p> <p>There are many issues to deal with when creating the Information Architecture for a SharePoint site.  One of those challenges is making sure that users understand where they are within the SharePoint deployment.  As humans we rely on our senses to help us orient where we are.  One of those five senses is sight/visual cues.  Visual cues can be a critical aspect of how we identify where we are or what to do.  So let’s explore how we can use visual cues to help identify what type of site a user is on in SharePoint.</p> <p><img style="margin:0px 20px 0px 5px;display:inline" align=right src="http://www.clker.com/cliparts/e/9/f/d/11949849751056341160traffic_light_dan_gerhar_01.svg.hi.png" width=51 height=60>Within visual cues, color, is a powerful medium.  Today we use color in many ways.  For example stop lights use of color is second nature, and we all know what <font color="#008000"><strong>GREEN</strong></font>, <strong><font color="#ff0000"><font color="#dac02e">YELLOW</font> </font></strong>and <strong><font color="#ff0000">RED</font></strong> mean.  We use color for fire and police.  We use color for sport teams.  Color is used a lot to help distinguish groups, actions or purpose.</p> <p>Something that SharePoint provides out of the box is themes.  You get 18 different themes, color schemes, available to use right away.  Most implementations use themes to provide a different color then the standard blue for their whole deployment.  But we are going to use Themes in a whole different way.</p> <p>Before we get into using themes we must setup the scenario of the SharePoint implementation we are talking about.  So, we are working with ABC Company that has a decided they need to share trusted and published information to all employees, they need areas for their departments to collaborate and they need an area where they can have projects that utilize cross functional teams.  So we have 3 major areas for this site.  We have the following:</p> <ol> <li>Intranet  <li>Work Groups  <li>Projects</li></ol> <p>Below is a high level diagram showing the SharePoint Information Architecture.  <a href="/BlogPoint/Lists/Posts/Attachments/57/image_2_6C46235E.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/57/image_thumb_6C46235E.png" width=774 height=196></a> </p> <p> </p> <p>Now that we have SharePoint implementation with structure let’s begin to talk about how themes can help users relate and identify where they are in this implementation.  Let’s get back to the example with the stop light. Color helps tremendously with knowing if you can go, need to slow down or stop.  When you look at a stop light you do not think if the color is on top, middle or bottom and have not memorized that a location of the light means something.  Image if color was taken out of stop light.  Difficult to know which light means what.  Does the top light mean stop or go? </p> <p> </p> <p><a href="/BlogPoint/Lists/Posts/Attachments/57/image_12_6C46235E.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/57/image_thumb_5_6C46235E.png" width=54 height=64></a> <a href="/BlogPoint/Lists/Posts/Attachments/57/image_14_6C46235E.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/57/image_thumb_6_6C46235E.png" width=55 height=64></a> <a href="/BlogPoint/Lists/Posts/Attachments/57/image_16_1A337617.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/57/image_thumb_7_1A337617.png" width=55 height=64></a> </p> <p>vs.</p> <p><img src="http://www.clker.com/cliparts/e/9/f/d/11949849751056341160traffic_light_dan_gerhar_01.svg.hi.png" width=51 height=60></p> <p> </p> <p>So let’s translate this into a SharePoint implementation.  Most SharePoint implementations do not follow the way we implemented a stop light,  they give the same theme (color) to each major group of sites.  It all begins to look the same and users get lost as to where they are and what the content is used for.  </p> <p>Below is my example of the standard implementation of SharePoint today and the classic stop light without color. When you look at each one of these three sites they all look the same.  If you look closer, you will see that one says Intranet, another Department A, and the third Projects.  All of these have very different uses, the content is different and who can access is different.  But they do not look different at all, so to a user they must be the same.</p> <p> </p> <p><a href="/BlogPoint/Lists/Posts/Attachments/57/image_4_1A337617.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/57/image_thumb_1_1A337617.png" width=806 height=428></a></p> <p> </p> <p>Now take look at the version below where we have applied themes to each of the three major groups.  Intranet gets a blue theme, Projects gets a red theme, and Departments gets a green theme. </p> <p> </p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p><a href="/BlogPoint/Lists/Posts/Attachments/57/image_18_1A337617.png"><img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title=image border=0 alt=image src="/BlogPoint/Lists/Posts/Attachments/57/image_thumb_8_1A337617.png" width=809 height=430></a> </p> <p> </p> <p>Now users will begin to understand the different areas of their SharePoint deployment and understand when they are in the Intranet, in a project site or in their department area.  You will be amazed at how users will be able to find information easier when they know where they are.  They will search in the right areas and understand that they are in the wrong area to even look for the content they need.  </p> <p>One thing to avoid is too much use of color. If themes not only get applied to groups, but also different themes are used within the groups it can become very confusing and get you right back to the problems you had with a single theme.  </p> <p>Again this is part of your Information Architecture and governance.  Using themes to identify the group that a user is in will improve usability, help the user to association the type of information to be found to color, how to use that information, and better understanding how their SharePoint implementation is designed.</p> <p>Using themes is something that can be done out of the box and is as simple as defining what theme will be applied to what groups.</p> <p>Hope this helps and enjoy.</p> <p>Peter</p></div></div>
<div><b>Category:</b> SharePoint;SP-Navigation</div>
<div><b>Published:</b> 4/12/2010 4:24 PM</div>
<div><b>Attachments:</b> <a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_12_6C46235E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_12_6C46235E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_14_6C46235E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_14_6C46235E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_16_1A337617.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_16_1A337617.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_18_1A337617.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_18_1A337617.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_2_6C46235E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_2_6C46235E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_4_1A337617.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_4_1A337617.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_1_1A337617.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_1_1A337617.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_5_6C46235E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_5_6C46235E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_6_6C46235E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_6_6C46235E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_6C46235E.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_6C46235E.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_7_1A337617.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_7_1A337617.png</a><br><a href="http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_8_1A337617.png">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/Attachments/57/image_thumb_8_1A337617.png</a><br><a href=""></a></div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-Navigation</category>
      <pubDate>Mon, 12 Apr 2010 20:24:09 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=57</guid>
    </item>
    <item>
      <title>SharePoint: ToolTip 2.0 (Posted on EndUserSharePoint.com)</title>
      <link>http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=55</link>
      <description><![CDATA[<div><b>Body:</b> <div class=ExternalClass236B1944EA4A4208A566EF6F7BD5837E>
<p>Well, back in January I posted on <a href="http://www.endusersharepoint.com/">www.endusersharepoint.com</a> a solution for adding custom tool tips on a SharePoint page.  </p>
<p><img src="http://www.endusersharepoint.com/blog/wp-content/uploads/2010/01/2010-01-13-ToolTip-01.png"></p>
<p>I forgot to post it on my blog as well.  So here is a link to the article and to my example page:</p>
<ul>
<li>Article:  <a href="http://www.endusersharepoint.com/2010/01/19/sharepoint-tooltip-2-0/">http://www.endusersharepoint.com/2010/01/19/sharepoint-tooltip-2-0/</a> 
<li>Example: <a title="http://www.bitsofsharepoint.com/ExamplePoint/SimpleTip/default.aspx" href="/ExamplePoint/SimpleTip/default.aspx">http://www.bitsofsharepoint.com/ExamplePoint/SimpleTip/default.aspx</a></li></ul>
<p>Enjoy,</p>
<p>Peter</p></div></div>
<div><b>Category:</b> SharePoint;SP-Javascript/JQuery;SP-Navigation</div>
<div><b>Published:</b> 3/21/2010 11:47 AM</div>
]]></description>
      <author>Peter Allen</author>
      <category>SharePoint;SP-Javascript/JQuery;SP-Navigation</category>
      <pubDate>Sun, 21 Mar 2010 15:47:33 GMT</pubDate>
      <guid isPermaLink="true">http://www.bitsofsharepoint.com/BlogPoint/Lists/Posts/ViewPost.aspx?ID=55</guid>
    </item>
  </channel>
</rss>